Skip to content

Conversation

@cboumalh
Copy link
Contributor

@cboumalh cboumalh commented Nov 2, 2025

What changes were proposed in this pull request?

This PR enforces that the sketch configuration parameter (lgConfigK/lgNomEntries) in both HllSketchAgg and ThetaSketchAgg must be a constant value.
If the parameter expression (right) is not foldable, a QueryExecutionErrors.*MustBeConstantError(prettyName) is thrown.

This change ensures that the aggregation configuration is validated at analysis time rather than runtime, preventing inconsistent or invalid sketch behavior.

Why are the changes needed?

The configuration parameter determines the accuracy and memory footprint of the sketch.
Allowing it to vary dynamically at runtime could lead to nondeterministic aggregation results and incorrect computations.
By enforcing it as a constant expression, we ensure deterministic behavior, predictable memory use, and alignment with the expected semantics of sketch-based aggregations.

Does this PR introduce any user-facing change?

No

How was this patch tested?

Added tests in SQLQueryTestSuite

Was this patch authored or co-authored using generative AI tooling?

No

@github-actions github-actions bot added the SQL label Nov 2, 2025
@cboumalh
Copy link
Contributor Author

cboumalh commented Nov 2, 2025

cc @dtenedor

@dtenedor
Copy link
Contributor

dtenedor commented Nov 3, 2025

Looks good, thanks for the fix!

@dtenedor dtenedor closed this in be6ab9c Nov 3, 2025
@dtenedor
Copy link
Contributor

dtenedor commented Nov 3, 2025

Merging to master and 4.1

dtenedor pushed a commit that referenced this pull request Nov 3, 2025
… and HLL

### What changes were proposed in this pull request?
This PR enforces that the sketch configuration parameter (lgConfigK/lgNomEntries) in both HllSketchAgg and ThetaSketchAgg must be a constant value.
If the parameter expression (right) is not foldable, a QueryExecutionErrors.*MustBeConstantError(prettyName) is thrown.

This change ensures that the aggregation configuration is validated at analysis time rather than runtime, preventing inconsistent or invalid sketch behavior.

### Why are the changes needed?
The configuration parameter determines the accuracy and memory footprint of the sketch.
Allowing it to vary dynamically at runtime could lead to nondeterministic aggregation results and incorrect computations.
By enforcing it as a constant expression, we ensure deterministic behavior, predictable memory use, and alignment with the expected semantics of sketch-based aggregations.

### Does this PR introduce _any_ user-facing change?
No

### How was this patch tested?
Added tests in SQLQueryTestSuite

### Was this patch authored or co-authored using generative AI tooling?
No

Closes #52836 from cboumalh/hll-theta-check-foldable-param.

Authored-by: Chris Boumalhab <[email protected]>
Signed-off-by: Daniel Tenedorio <[email protected]>
(cherry picked from commit be6ab9c)
Signed-off-by: Daniel Tenedorio <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants